let testData = {
    test:null,//试卷数据
    test_type:null,//试卷类型的json数据
    test_type_selectedID:null,//选中的试卷类型ID
    test_status:null,
    testName:null,//试卷名称
    options_selected:null,//试卷状态
    selectedID:[],//专门用来装多选框选中对象的ID
    options: [{
        value: 3,
        label: '所有'
    }, {
        value: 1,
        label: '启用'
    }, {
        value: 0,
        label: '关闭'
    }],
    isVisible: false,
    selectedTest:null,//根据id查询到的试卷对象
    re_id:null,//id
    re_testName:null,//试卷名
    re_options_selected:null,//状态
    re_test_type_selectedID:null,//类型


};

let vue = new Vue({

    el:"#alice",
    data:testData,
    methods:{
        get_test_typeID:function (id) {//获取题型id
            console.log(testData.test_type_selectedID);

        },
        handleClick() {
            window.parent.layui.index.openTabsPage('ques/add',"新增题目");
        },
        del() { //删除
            this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                this.$message({
                    type: 'success',
                    message: '删除成功!'
                });
            }).catch(() => {
                this.$message({
                    type: 'info',
                    message: '已取消删除'
                });
            });
        },

        search: function () {
            let params =new FormData();
            params.append("testName",this.testName);
            params.append("status",this.options_selected);
            params.append("testType",this.test_type_selectedID);

            //将数据发送给后端服务器的函数
            axios.post('/ep/test/all', params)
                .then(response => {
                    testData.test = response.data;
                })
                .catch(error => {
                    console.log(error);
                });

        },
        reset:function () {
            this.testName=null;
            this.options_selected=null;
            this.test_type_selectedID=null;
            this.search();

        },handleSelectionChange: function (val) {
            this.multipleSelection = val;
            this.selectedID = [];//装ID的数组重置为空
            this.multipleSelection.forEach(e=>this.selectedID.push(e.id));//遍历更新装ID的数组
            console.log("ID为： "+this.selectedID);
        },edit: function () {

            this.isVisible = true;

            //第一步：根据获取到的id值，在数据库中查询出数据
            let params =new FormData();
            params.append("id",this.selectedID);

            //将数据发送给后端服务器的函数
            axios.post('/ep/test/selectbyid', params)
                .then(response => {
                    testData.selectedTest = response.data;
                    console.log(testData.selectedTest);

                    //把查询出来的数据填充进绑定对象
                    //解决请求异步性带来的问题：数据装载为null
                    testData.re_id = testData.selectedTest.id;
                    testData.re_testName = testData.selectedTest.testName;
                    testData.re_options_selected = testData.selectedTest.status;
                    testData.re_test_type_selectedID = testData.selectedTest.testType;

                    console.log(testData.re_id);
                    console.log(testData.re_testName);console.log(testData.re_options_selected);console.log(testData.re_test_type_selectedID);

                })
                .catch(error => {
                    console.log(error);
                });




        },alice:function () {


            console.log("执行到这里了吗？")
            //第二步，把修改后的数据，传入服务器，修改数据
            let params2 =new FormData();
            params2.append("id",this.re_id);
            params2.append("testName",this.re_testName);
            params2.append("status",this.re_options_selected);
            params2.append("testType",this.re_test_type_selectedID);

            //将数据发送给后端服务器的函数
            axios.post('/ep/test/update', params2)
                .then(response => {
                    testData.test = response.data;
                    this.search();//数据更新成功后再刷新页面
                    //解决请求异步性带来的问题：数据装载为null
                    this.isVisible = false;

                })
                .catch(error => {
                    console.log(error);
                });

        },del(row,index) { //删除
            this.$confirm('删除试卷, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                axios({
                    method: 'DELETE',
                    url: '../test/del/'+ row.id,
                }).then(res =>{
                    if(res.data.code ===200 ){
                        //删除当前选中行
                        // console.log(vm.tableData);
                        vm.tableData.splice(index,1);
                        this.$message({
                            type: 'success',
                            message: '删除成功!'
                        });
                    }else{
                        this.$message({
                            message:res.data.message
                        })
                    }
                })
            }).catch(() => {
                this.$message({
                    type: 'info',
                    message: '已取消删除'
                });
            });
        }



    }

});


//-----------------------------------分割线---------------------------------------------
//页面加载后，即向后端发送请求，获取json格式的字符串数据


window.onload=function(){
    getAllTest();
    getAllTestType();
}




//-----------------------------------分割线---------------------------------------------
//页面加载完成后要执行的函数


//从数据库获取所有的试卷数据
let getAllTest =  ()=> {
    axios.post('/ep/test/all')
        .then(response => {
            testData.test = response.data;
            console.log(testData.test);

        })
        .catch(function (error) {
            console.log(error);
        });
}



//从数据库获取所有的试卷类型
let getAllTestType =  ()=> {
    axios.get('/ep/test/alltesttype')
        .then(response => {
            testData.test_type = response.data;
            console.log(testData.test_type);
        })
        .catch(function (error) {
            console.log(error);
        });
}





//-----------------------------------分割线---------------------------------------------
//监听到【点击事件】要执行的函数（点击按钮要执行的函数）


















































